using ErrorCode;
using MediatR;
using RabbitTraceability.Api.Dtos.Response;
using System;

namespace RabbitTraceability.Api.Applications.Command
{
    /// <summary>
    /// 溯源信息查询命令
    /// </summary>
    public class QueryTraceabilityInfoCommand : IRequest<ApiPaging<TraceabilityInfoDto>>
    {
        /// <summary>
        /// 页码（从1开始）
        /// </summary>
        public int PageIndex { get; set; } = 1;

        /// <summary>
        /// 每页记录数
        /// </summary>
        public int PageSize { get; set; } = 10;

        /// <summary>
        /// 商品名称（模糊查询）
        /// </summary>
        public string? ProductName { get; set; }

        /// <summary>
        /// 生产批次（精确查询）
        /// </summary>
        public string? ProductionBatch { get; set; }

        /// <summary>
        /// 保质期天数（精确查询）
        /// </summary>
        public string? ShelfLife { get; set; }

        /// <summary>
        /// 生产许可证号（精确查询）
        /// </summary>
        public string? ProductionLicense { get; set; }

        /// <summary>
        /// 生产企业（模糊查询）
        /// </summary>
        public string? Manufacturer { get; set; }

        /// <summary>
        /// 创建人（模糊查询）
        /// </summary>
        public string? CreatedBy { get; set; }

        /// <summary>
        /// 创建时间（精确查询）
        /// </summary>
        public DateTime? CreatedTime { get; set; }

        /// <summary>
        /// 修改人（模糊查询）
        /// </summary>
        public string? LastModifiedBy { get; set; }

        /// <summary>
        /// 修改时间（精确查询）
        /// </summary>
        public DateTime? LastModifiedTime { get; set; }
    }
} 